import socket


def send(ip, port, data):
    """
    模拟 TCP 客户端并发送数据

    Args:
        ip (str): 目标服务器的 IP 地址
        port (int): 目标服务器的端口号
        data (bytes): 需要发送的数据（已编码）
    """
    try:
        # 如果 data 是 str，则转换为 bytes
        if isinstance(data, str):
            data = data.encode("utf-8")

        # 创建一个 TCP 客户端套接字
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket:
            # 连接到指定的服务器和端口
            client_socket.connect((ip, port))
            print(f"连接到服务器 {ip}:{port}")

            # 发送数据
            client_socket.sendall(data)
            print(f"发送数据: {data.decode('utf-8')}")

            # 接收服务器的响应
            response = client_socket.recv(1024)
            print(f"收到服务器响应: {response.decode('utf-8')}")
    except Exception as e:
        print(f"发生错误: {e}")


# 模拟调用
if __name__ == "__main__":
    # 示例数据，DIC_HJ212_2017 可根据实际情况定义
    DIC_HJ212_2017 = {
        "key1": "value1",
        "key2": "value2",
    }
    hj212 = str(DIC_HJ212_2017)  # 将字典转为字符串
    tcp_client_send("127.0.0.1", 8080, hj212.encode("utf-8"))
